AWK একটি শক্তিশালী স্ক্রিপ্টিং ভাষা যা প্রক্রিয়াকরণের জন্য ফাংশনগুলিকে সমর্থন করে। ফাংশনগুলি কোডের পুনরায় ব্যবহারযোগ্য ব্লক, যা একটি নির্দিষ্ট কার্যক্রম সম্পাদন করে। AWK এ ফাংশনগুলি ব্যবহার করে জটিল কাজগুলোকে সহজে এবং কার্যকরীভাবে সম্পন্ন করা যায়।
একটি ফাংশন সংজ্ঞায়িত করার জন্য নিম্নলিখিত সিনট্যাক্স ব্যবহৃত হয়:
function function_name(parameter1, parameter2, ...) {
action;
}
এখানে:
function square(x) {
return x * x;
}
BEGIN {
num = 5;
result = square(num);
print "Square of " num " is " result;
}
এখানে, square
নামক একটি ফাংশন তৈরি করা হয়েছে যা একটি সংখ্যা প্রাপ্ত করে এবং তার বর্গফল প্রদান করে।
function add(a, b) {
return a + b;
}
BEGIN {
num1 = 10;
num2 = 20;
sum = add(num1, num2);
print "Sum of " num1 " and " num2 " is " sum;
}
এই উদাহরণে, add
ফাংশন দুটি প্যারামিটার নেয় এবং তাদের যোগফল প্রদান করে।
AWK কিছু বিল্ট-ইন ফাংশনও সরবরাহ করে, যা প্রায়ই ব্যবহৃত হয়। এর মধ্যে কয়েকটি উল্লেখযোগ্য ফাংশন হল:
length(string): একটি স্ট্রিংয়ের দৈর্ঘ্য প্রদান করে।
awk 'BEGIN { str = "Hello"; print length(str); }'
substr(string, start, length): একটি স্ট্রিং থেকে একটি সাবস্ট্রিং প্রদান করে।
awk 'BEGIN { str = "Hello World"; print substr(str, 1, 5); }'
toupper(string): একটি স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করে।
awk 'BEGIN { str = "hello"; print toupper(str); }'
tolower(string): একটি স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করে।
awk 'BEGIN { str = "HELLO"; print tolower(str); }'
ফাংশনগুলি AWK স্ক্রিপ্টে বিভিন্ন কার্যক্রম সম্পাদন করতে ব্যবহার করা হয়, যা কোডের পুনরাবৃত্তি কমায় এবং স্ক্রিপ্টের বোঝাপড়া সহজ করে।
function average(sum, count) {
return sum / count;
}
{
total += $1;
count++;
}
END {
avg = average(total, count);
print "Average is " avg;
}
এখানে, average
ফাংশনটি মোট এবং গণনার ভিত্তিতে গড় নির্ধারণ করে।
AWK এ ফাংশনগুলি কোডের পুনরায় ব্যবহারযোগ্য ব্লক, যা স্ক্রিপ্টিং কার্যক্রমকে সহজতর করে। ব্যবহারকারীরা কাস্টম ফাংশন তৈরি করে তাদের প্রয়োজন অনুসারে বিভিন্ন কার্যক্রম সম্পাদন করতে পারেন, এবং AWK এর বিল্ট-ইন ফাংশনগুলি সাধারণ কাজগুলোকে দ্রুত এবং কার্যকরভাবে সম্পন্ন করতে সহায়তা করে। ফাংশনগুলি AWK স্ক্রিপ্টের কার্যকারিতা এবং বোঝাপড়া বাড়ানোর জন্য একটি গুরুত্বপূর্ণ উপাদান।
প্রোগ্রামিং ভাষাগুলিতে, Built-in Functions হল প্রি-ডিফাইন্ড ফাংশনগুলি, যা বিভিন্ন কাজ সম্পাদনের জন্য ব্যবহৃত হয়। AWK এবং অন্যান্য প্রোগ্রামিং ভাষায়, কিছু সাধারণ Built-in Functions এর মধ্যে length()
, substr()
, index()
, split()
, এবং sprintf()
অন্তর্ভুক্ত। নিচে এই ফাংশনগুলোর ব্যবহার এবং উদাহরণ দেওয়া হলো।
length()
ফাংশন একটি স্ট্রিংয়ের দৈর্ঘ্য (অর্থাৎ, এর মধ্যে মোট অক্ষরের সংখ্যা) ফেরত দেয়।
length(string)
awk 'BEGIN {
str = "Hello, World!";
print length(str); # ফলস্বরূপ: 13
}'
এখানে, "Hello, World!" স্ট্রিংটির দৈর্ঘ্য 13।
substr()
ফাংশন একটি স্ট্রিংয়ের নির্দিষ্ট অংশ বের করার জন্য ব্যবহৃত হয়। এটি স্ট্রিংয়ের শুরু থেকে একটি নির্দিষ্ট অবস্থান এবং দৈর্ঘ্য অনুসারে সাবস্ট্রিং ফেরত দেয়।
substr(string, start, length)
awk 'BEGIN {
str = "Hello, World!";
print substr(str, 1, 5); # ফলস্বরূপ: Hello
}'
এখানে, substr
ফাংশন 1 থেকে 5 অক্ষরের অংশ বের করে, যা "Hello"।
index()
ফাংশন একটি স্ট্রিংয়ের মধ্যে একটি সাবস্ট্রিংয়ের অবস্থান নির্ধারণ করে। এটি প্রথম occurrence-এর অবস্থান ফেরত দেয় এবং যদি সাবস্ট্রিংটি না পাওয়া যায় তবে 0 ফেরত দেয়।
index(string, substring)
awk 'BEGIN {
str = "Hello, World!";
print index(str, "World"); # ফলস্বরূপ: 8
}'
এখানে, "World" শব্দটির শুরু 8 নম্বর অবস্থানে।
split()
ফাংশন একটি স্ট্রিংকে একটি নির্দিষ্ট delimiter (পদার্থ) দিয়ে বিভক্ত করে এবং একটি অ্যারেতে ফলাফল সংরক্ষণ করে।
split(string, array, delimiter)
awk 'BEGIN {
str = "apple,banana,cherry";
split(str, fruits, ",");
print fruits[1]; # ফলস্বরূপ: apple
print fruits[2]; # ফলস্বরূপ: banana
print fruits[3]; # ফলস্বরূপ: cherry
}'
এখানে, split
ফাংশন কমা (,
) দ্বারা str
স্ট্রিংকে তিনটি অংশে বিভক্ত করে।
sprintf()
ফাংশন একটি ফরম্যাটেড স্ট্রিং তৈরি করে, যা printf এর মতো তবে এটি স্ট্যান্ডার্ড আউটপুটে মুদ্রিত হয় না। এটি একটি নতুন স্ট্রিং ফেরত দেয়।
sprintf(format, arguments)
awk 'BEGIN {
num = 3.14159;
result = sprintf("The value of pi is approximately: %.2f", num);
print result; # ফলস্বরূপ: The value of pi is approximately: 3.14
}'
এখানে, sprintf
ফাংশন num
এর মানকে নির্দিষ্ট ফরম্যাটে একটি স্ট্রিংয়ে রূপান্তর করে।
Built-in Functions, যেমন length()
, substr()
, index()
, split()
, এবং sprintf()
প্রোগ্রামিং ভাষায় স্ট্রিং প্রসেসিংয়ের জন্য অত্যন্ত কার্যকরী। এগুলি ডেটার মধ্যে বিভিন্ন অপারেশন সম্পাদনে সাহায্য করে, যা কোডিংকে আরও সহজ ও কার্যকর করে। এই ফাংশনগুলির মাধ্যমে ব্যবহারকারীরা দ্রুত এবং কার্যকরভাবে স্ট্রিং ডেটার সাথে কাজ করতে সক্ষম হন।
AWK তে User-Defined Functions (ব্যবহারকারী-সংজ্ঞায়িত ফাংশন) ব্যবহারকারীদের তাদের নিজস্ব ফাংশন তৈরি করার অনুমতি দেয়। এই ফাংশনগুলি একটি নির্দিষ্ট কাজ সম্পাদনের জন্য কোডের একটি ব্লককে encapsulate করে, যা পুনরায় ব্যবহারযোগ্য এবং আরও সংগঠিত কোড লেখার অনুমতি দেয়। ফাংশনগুলি বিভিন্ন ইনপুট গ্রহণ করতে পারে এবং একটি ফলাফল ফেরত দিতে পারে।
AWK তে একটি User-Defined Function তৈরি করার জন্য, আপনাকে প্রথমে function
কীওয়ার্ড ব্যবহার করতে হবে। এর সাধারণ সিনট্যাক্স নিম্নরূপ:
function function_name(parameter1, parameter2, ...) {
# ফাংশনের কোড ব্লক
return value
}
awk 'function square(x) {
return x * x
}
{
print "Square of", $1, "is", square($1)
}' data.txt
এখানে square
নামের একটি ফাংশন তৈরি করা হয়েছে যা একটি সংখ্যার বর্গ বের করে। ফাংশনটি কল করার পর $1
এর বর্গ প্রিন্ট হয়।
awk 'function add(a, b) {
return a + b
}
{
result = add($1, $2)
print "Sum of", $1, "and", $2, "is", result
}' data.txt
এখানে add
নামের একটি ফাংশন তৈরি করা হয়েছে যা দুটি সংখ্যার যোগফল বের করে। $1
এবং $2
এর যোগফল প্রিন্ট হয়।
awk 'function average(total, count) {
return total / count
}
{
sum += $1
count++
}
END {
print "Average:", average(sum, count)
}' data.txt
এখানে average
নামের একটি ফাংশন তৈরি করা হয়েছে, যা একটি সংখ্যা এবং গণনা গ্রহণ করে এবং তাদের গড় বের করে। END
ব্লকে ফাংশনটি কল করে গড় প্রিন্ট করা হয়।
User-Defined Functions AWK তে একটি শক্তিশালী বৈশিষ্ট্য, যা ব্যবহারকারীদের তাদের নিজস্ব ফাংশন তৈরি করার সুযোগ দেয়। এই ফাংশনগুলি ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণের সময় কোডের পুনরায় ব্যবহারযোগ্যতা এবং সংগঠন বাড়ায়। ফাংশন ব্যবহার করে কোডের কার্যকারিতা বৃদ্ধি পায় এবং এটি ডেভেলপারদের জন্য আরও কার্যকরী এবং সহজে রক্ষণাবেক্ষণযোগ্য কোড লেখার সুযোগ দেয়।
AWK প্রোগ্রামিং ভাষায় ফাংশনগুলি কোডের পুনঃব্যবহারযোগ্য টুকরো হিসেবে কাজ করে। একটি ফাংশন সাধারণত একটি নির্দিষ্ট কাজ সম্পাদন করে এবং প্রোগ্রামের যে কোনও স্থানে আহ্বান করা যায়। এখানে আমরা AWK তে ফাংশন ঘোষণা (declaration) এবং কল (call) করার উদাহরণ দেখাবো।
AWK এ একটি ফাংশন ঘোষণা করার জন্য function
কীওয়ার্ড ব্যবহার করা হয়। ফাংশনটির নাম, প্যারামিটার (যদি থাকে), এবং ফাংশনের কার্যকরী অংশ {}
মধ্যে থাকে।
awk 'function add(a, b) {
return a + b # দুটি সংখ্যার যোগফল প্রদান করে
}
{
result = add($1, $2) # প্রথম এবং দ্বিতীয় কলামের মান নিয়ে ফাংশন কল
print "Sum:", result
}' filename.txt
এখানে, add
নামক একটি ফাংশন তৈরি করা হয়েছে যা দুটি সংখ্যা গ্রহণ করে এবং তাদের যোগফল প্রদান করে।
ফাংশন কল করার সময়, ফাংশনের নামের সাথে প্যারামিটারগুলি পাঠানো হয়। ফাংশন কল করার জন্য ফাংশনের নামের পরে প্যারেন্টেসিস ব্যবহার করতে হয়।
awk 'function square(x) {
return x * x # সংখ্যার বর্গ প্রদান করে
}
{
value = square($1) # প্রথম কলামের মান নিয়ে ফাংশন কল
print "Square of", $1, "is:", value
}' filename.txt
এখানে, square
নামক একটি ফাংশন তৈরি করা হয়েছে যা একটি সংখ্যা গ্রহণ করে এবং তার বর্গ প্রদান করে। পরে এই ফাংশনটি প্রতিটি লাইনের প্রথম কলামের মান নিয়ে আহ্বান করা হয়েছে।
ফাংশন একাধিক প্যারামিটার গ্রহণ করতে পারে।
awk 'function multiply(a, b) {
return a * b # দুটি সংখ্যার গুণফল প্রদান করে
}
{
product = multiply($1, $2) # প্রথম এবং দ্বিতীয় কলামের মান নিয়ে ফাংশন কল
print "Product:", product
}' filename.txt
এখানে, multiply
নামক একটি ফাংশন দুটি সংখ্যার গুণফল প্রদান করে এবং এটি প্রথম এবং দ্বিতীয় কলামের মান নিয়ে আহ্বান করা হয়েছে।
AWK এ ডিফল্ট মান সহ ফাংশন ঘোষণা করা সম্ভব।
awk 'function greet(name, greeting = "Hello") {
return greeting ", " name # স্বাগতম বার্তা প্রদান করে
}
{
print greet($1) # প্রথম কলামের নাম নিয়ে ফাংশন কল
}' filename.txt
এখানে, greet
ফাংশনটিতে একটি ডিফল্ট greeting
মান রয়েছে। যদি greeting
প্রদান না করা হয়, তাহলে এটি "Hello" ব্যবহার করবে।
AWK তে ফাংশনগুলি কোডের পুনঃব্যবহারযোগ্য টুকরো হিসেবে কাজ করে, যা বিভিন্ন স্থানে আহ্বান করা যায়। ফাংশন ঘোষণা করতে function
কীওয়ার্ড ব্যবহার করা হয় এবং ফাংশন কল করার সময় ফাংশনের নাম এবং প্যারামিটার পাঠানো হয়। এই বৈশিষ্ট্যগুলি AWK এ ডেটা প্রক্রিয়াকরণকে আরও কার্যকর এবং সংগঠিত করতে সাহায্য করে।
AWK একটি শক্তিশালী প্রোগ্রামিং ভাষা যা ফাংশন ব্যবহারের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠনের সুবিধা প্রদান করে। ফাংশনে প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করে আমরা ডেটা প্রসেসিংয়ের কাজকে আরও কার্যকরী করতে পারি। নিচে AWK তে ফাংশন প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করার পদ্ধতি আলোচনা করা হলো।
ফাংশন প্যারামিটার হল ফাংশনের মধ্যে ডেটা পাঠানোর উপায়। AWK তে একটি ফাংশন ঘোষণা করার সময়, প্যারামিটারগুলি সঠিকভাবে ব্যবহার করা যেতে পারে।
awk 'function add(a, b) {
return a + b
}
{
sum = add($1, $2) # প্রথম এবং দ্বিতীয় কলাম যোগ করে
print "Sum of " $1 " and " $2 " is: " sum
}' filename.txt
এখানে, add
নামক একটি ফাংশন রয়েছে যা দুটি প্যারামিটার a
এবং b
গ্রহণ করে এবং তাদের যোগফল রিটার্ন করে। মূল ব্লকে, $1
এবং $2
কে প্যারামিটার হিসেবে পাঠানো হয়েছে।
AWK তে একটি ফাংশন রিটার্ন ভ্যালু ব্যবহার করে ফাংশনের ফলাফল ফেরত দেয়। return
কিওয়ার্ডের মাধ্যমে এটি সম্পন্ন হয়।
awk 'function square(x) {
return x * x
}
{
result = square($1) # প্রথম কলামের মানের বর্গফল বের করে
print "Square of " $1 " is: " result
}' filename.txt
এখানে, square
নামক ফাংশনটি একটি প্যারামিটার x
গ্রহণ করে এবং তার বর্গফল রিটার্ন করে। মূল ব্লকে, প্রথম কলামের মানকে ফাংশনে পাঠানো হয়েছে এবং ফলাফল প্রিন্ট করা হয়েছে।
নিচে একটি উদাহরণ দেওয়া হলো যেখানে প্যারামিটার এবং রিটার্ন ভ্যালু উভয়ই ব্যবহার করা হয়েছে:
awk 'function average(a, b) {
return (a + b) / 2
}
{
avg = average($1, $2) # প্রথম এবং দ্বিতীয় কলামের গড় বের করে
print "Average of " $1 " and " $2 " is: " avg
}' filename.txt
এখানে, average
ফাংশনটি দুটি প্যারামিটার a
এবং b
গ্রহণ করে এবং তাদের গড় রিটার্ন করে।
AWK তে ফাংশন প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করে কোডের পুনঃব্যবহারযোগ্যতা এবং পরিষ্কারতা বৃদ্ধি পায়। ফাংশনের মাধ্যমে আমরা বিভিন্ন কার্যক্রমকে বিভক্ত করতে এবং বিশেষ কাজগুলোর জন্য নির্দিষ্ট কোড লিখতে পারি। এটি ডেটা বিশ্লেষণের সময় কার্যকারিতা এবং দক্ষতা বাড়াতে সহায়ক। AWK এ ফাংশনগুলোর সঠিক ব্যবহার ডেটা প্রক্রিয়াকরণের কাজকে আরও সহজ এবং দ্রুত করে তোলে।
common.read_more